網路參數優化是找到最佳模型參數(如權重和偏差)的過程,目的是使模型在訓練數據上的表現最佳。
損失函數
一個數學函數,用於計算模型預測值和實際值之間的誤差。
損失值越小,代表模型的表現越好。
常見的損失函數包括:
- 均方誤差 (Mean Squared Error, MSE):常用於迴歸問題。
- 交叉熵 (Cross-Entropy):常用於分類問題。
優化器
優化器是一種算法,用於更新模型的參數以最小化損失函數。
它就像一個導航系統,告訴模型參數應該朝哪個方向調整。
優化器會根據梯度(gradient)來更新參數。
梯度可以被理解為損失函數對於每個參數的變化率,它指示了損失函數增加最快的方向。
優化器會朝著梯度的反方向移動,以尋找損失函數的最小值。
梯度下降
- 批量梯度下降 (Batch Gradient Descent):使用整個訓練數據集來計算梯度並更新參數。雖然可以找到全局最優解,但計算成本高,訓練速度慢,尤其是在數據量大時。
- 隨機梯度下降 (Stochastic Gradient Descent, SGD):每次只使用一個樣本來更新參數。計算速度快,但由於每次更新的方向不穩定,可能會在收斂過程中產生震盪。
- 迷你批量梯度下降 (Mini-batch Gradient Descent):這是最常用的方法,它使用一小批量的樣本來計算梯度。它結合了批量梯度下降的穩定性和隨機梯度下降的訓練速度。
動量
- 這個優化器引入了“動量”的概念,就像一個滾下山的球,它不僅考慮當前的梯度,還會累計過去的梯度方向。這有助於在梯度平緩的區域加速收斂,並在局部最小值(local minima)或鞍點(saddle points)時跳脫困境。
Adam
- Adam 是目前最流行和最有效的優化器之一。它結合了動量和自適應學習率(adaptive learning rate)的概念。
- 為每個參數計算不同的學習率,對於頻繁更新的參數降低學習率,對於不常更新的參數提高學習率。這使得訓練過程更加穩定和高效,通常能取得不錯的結果,是新手入門的首選。